package com.aoxiang.zbox.common.exception;

import lombok.Getter;

/**
 * Description:
 *
 * @author: aoxiang
 * @create: 2024-12-21 16:13
 **/

@Getter
public enum ErrorCodeEnum {
    /**
     * 错误码枚举类
     * 错误码共有5位:
     * 第一位表示错误来源：
     * - 1：客户端错误
     * - 2：服务端错误
     * - 3：第三方错误
     * <p>
     * 第二、三位表示错误模块：
     * - 00：通用模块
     * - 01：用户模块
     * - ...（按需扩展）
     * <p>
     * 第四、五位为递增数字，表示具体错误类型。
     */
    // 通用模块
    SUCCESS("00000", "成功"),
    PARAM_MISSING("10001", "参数缺失错误"),
    PARAM_TYPE_ERROR("10002", "参数类型错误"),
    REQUEST_METHOD_ERROR("10003", "请求方式错误"),
    PARAM_VALIDATE_ERROR("10004", "参数校验失败"),
    TOKEN_EXPIRED("10005", "token已过期"),
    TOKEN_MISSING("10006", "token缺失"),
    USERNAME_EXISTS("10101", "账号已存在"),
    USER_PASSWORD_ERROR("10102", "用户账号或密码错误"),
    SYSTEM_ERROR("20001", "系统错误");


    private final String code;
    private final String desc;

    ErrorCodeEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }
}
